home *** CD-ROM | disk | FTP | other *** search
/ Beginning Mac Programming / Beginning Mac Programming.bin / pc / Open Me for REALbasic 3 / REALbasic 3.2 / Goodies / 3rd Party Demos / 3rd Party Plugins / Misc / PEVocoder 1.0 (PPC) / PEVocodePlugin Source Code / wave.h < prev   
Encoding:
C/C++ Source or Header  |  1998-09-12  |  1.9 KB  |  65 lines

  1. /******************************************************************************
  2.  * $Id: wave.h,v 1.2 1998/09/13 00:21:18 emanuel Exp $
  3.  * Copyright (C) 1998 Emanuel Borsboom <emanuel@zerius.com>
  4.  * Permission is granted to make any use of this code subject to the condition
  5.  * that all copies contain this notice and an indication of what has been
  6.  * changed.
  7.  *****************************************************************************/
  8.  
  9. #ifndef WAVE_H_INCLUDED
  10. #define WAVE_H_INCLUDED
  11.  
  12. #include <stdio.h>
  13. #include "config.h"
  14.  
  15. typedef enum {AIFF_FORMAT, RIFF_FORMAT,
  16.           WAVE_NUM_FORMATS} WAVE_FORMAT;
  17.  
  18. typedef enum {WAVE_READ_MODE, WAVE_WRITE_MODE} WAVE_OPEN_MODE;
  19.  
  20. typedef SHORT SAMPLE;
  21.  
  22. struct tag_WAVE_FILE
  23. {
  24.   FILE *fp;
  25.   BYTE bits;
  26.   BOOL is_big_endian;
  27.   SAMPLE sample_offset;
  28.   INT length, position;
  29.   WAVE_OPEN_MODE open_mode;
  30.   WAVE_FORMAT format;
  31.   long data_offset;
  32. };
  33. typedef struct tag_WAVE_FILE WAVE_FILE;
  34.  
  35. struct tag_WAVE_INFO
  36. {
  37.   INT rate;
  38.   BYTE bits;
  39.   BYTE channels;
  40.   INT length;
  41.   WAVE_FORMAT format;
  42. };
  43. typedef struct tag_WAVE_INFO WAVE_INFO;
  44.  
  45. WAVE_FILE *wave_open(char *filename, WAVE_INFO *info);
  46. WAVE_FILE *wave_open_specific(char *filename, WAVE_INFO *info);
  47. WAVE_FILE *wave_create(char *filename, WAVE_INFO *info);
  48. void wave_close(WAVE_FILE *file);
  49. size_t wave_read(WAVE_FILE *file, SAMPLE *buffer, size_t length);
  50. void wave_write(WAVE_FILE *file, SAMPLE *buffer, size_t length);
  51. void wave_seek(WAVE_FILE *file, INT position);
  52.  
  53. INT wave_read_int_big(FILE *fp);
  54. void wave_write_int_big(INT i, FILE *fp);
  55. INT wave_read_int_little(FILE *fp);
  56. void wave_write_int_little(INT i, FILE *fp);
  57. SHORT wave_read_short_big(FILE *fp);
  58. void wave_write_short_big(SHORT i, FILE *fp);
  59. SHORT wave_read_short_little(FILE *fp);
  60. void wave_write_short_little(SHORT i, FILE *fp);
  61. REAL wave_read_extended(FILE *fp);
  62. void wave_write_extended(REAL e, FILE *fp);
  63.  
  64. #endif /* WAVE_H_INCLUDED */
  65.